One or more aspects of the present invention relate in general to data processing systems, and in particular, to restarting a software system on a computer platform after an unintentional software system shutdown.
Computers and software applications are often unexpectedly shut down for a variety of reasons. A power outage may cause a computer and any applications presently in use to shut down. An operating system or software application may perform an unintentional shut down (“crash”) where some aspect of data being processed or some aspect of processing sequencing in the operating system or application becomes problematic and causes the operating system or application to shut down. On the other hand, often a computer or software application shutdown is intentional, but still unexpected or unintentional to the user. For example, while the user is away from the computer, a computer system administrator may load a software patch (update or other software modification) to one or more applications currently in use, followed by a restart of the computer for properly integrating the patch with the subject application.
Such intended or unintentional shutdowns and restarts often cause a loss of data being entered or edited by a user at the time of the shutdown, and moreover, such shutdowns and restarts often result in a loss of the current application state of the various applications in use at the time of the shutdown and subsequent restart. That is, the number of applications deployed, the locations on the display screen of the various application display frames, the deployment of particular documents or other data, the editing locations in deployed documents, and other application settings states are lost. After the shutdown and subsequent restart, the user must redeploy each application and associated document or other data, reposition and resize the application display frames for each deployed application, and redeploy each document or other data in use to a position in the document or data at which the document or data was being edited prior to the shutdown.
US 20070162785 A1 describes a method which solves the above and other problems by providing for capturing and restoring application settings states during application shutdowns and subsequent restarts. Pre-shutdown deployed user data also may be captured for redeployment after subsequent application restart. An in-use application periodically saves data representing its current state. For example, data representing the size and location of deployed application user interface components and display frames, the location of scrollbars and other displayed application components, and data representing presently displayed documents and the viewing and editing positions of presently displayed documents are stored to memory on a periodic basis.
Both application state data and user data may be automatically stored at regular intervals, for example, every 10 minutes, or alternatively, application state data and user data may be stored automatically upon the detection of an impending intended application shutdown in order to allow for redeployment of the application to the application state stored for the application prior to shutdown.
As described further in US 20070162785 A1, applications prepared to recover from an unintentional shutdown need to keep persistent state outside the program memory. Usually this is implemented as a checkpoint. This can consist, for example, in saving the state to a file. However this design implies a runtime overhead to generate the checkpoints and on the other hand checkpoints are usually outdated if the state changes continuously.